package reflect;

import java.lang.reflect.Method;
import java.lang.reflect.Modifier;
import java.util.Arrays;

/**
 * 访问方法信息
 *
 * 所有反射对象都有类似的操作，可以访问其表示内容的相关信息
 */
public class ReflectDemo6 {
    public static void main(String[] args) throws Exception {
        Class cls = Class.forName("reflect.Person");
        Method method = cls.getMethod("say", String.class, int.class);
        String name = method.getName();
        System.out.println("方法名:"+name);

        int pc = method.getParameterCount();
        System.out.println("方法参数的个数:"+pc);

        Class[] pt = method.getParameterTypes();
        System.out.println("参数的类型:"+ Arrays.toString(pt));

        Class rt = method.getReturnType();
        System.out.println("返回值类型:"+rt);

        int modifiers = method.getModifiers();
        switch (modifiers){
            case Modifier.PUBLIC:
                System.out.println("访问修饰符:public");
                break;
            case Modifier.PRIVATE:
                System.out.println("访问修饰符:private");
                break;
            case Modifier.PROTECTED:
                System.out.println("访问修饰符:protected");
                break;
        }



    }
}





